#pragma once

#include <cstddef>

namespace efs
{
	/** \brief
	 *  Interface for streams, used services to transmit data throw socket.
	 */
	class Stream2
	{
	public:
		Stream2();
		virtual ~Stream2();

		/**
		 * Method to read data from stream.
		 * @param Data pointer to data array.
		 * @param Size data array size
		 * @return How many bytes were actually read.
		 */
		virtual size_t read(char *data, size_t size) = 0;

	private:
		Stream2(Stream2 &);
		Stream2 & operator=(Stream2 &);
	};
}
